기술자는 어떤 마음가짐을 가져야 하는가?
공자의 말에 따르면 기술자는 상대적으로 천하다. “전통적 문과 학문(특히 철학, 정치학, 윤리학같은)을 연구하거나 정치를 하는 선비->농사를 지어 근간을 다지는 농업인->기술을 익혀 일상을 편리하게 하는 기술자->물건을 팔아 시장을 유지하는 상인” 순으로 그 위계가 정해진다. 그러나 기술 문명이 문과만큼 중요하게 득세한 지금, 언제까지나 기술을 잡스러운 것으로 치기에는 조금 문제가 있는 지점이 있다. 근본적으로 기술은 철학과 다르다. 앉아서 필기구를 들고 논리의 정합성과 윤리의 원리를 말하는 것이 아닌, 도구를 들고 동작의 일관성과 통합적인 방법론을 제시하는 쪽이다. 많은 사람들은 학술적이지 않은 기술 자체에 대해서 자괴감을 느끼고 명문 공과 대학에서 지식인의 영역으로 편입된 기술을 배우는 것이 훨씬 멋지다고 생각하고, 나 또한 솔직히 그런 마음이 없다고 말할 수 없다.
이것에 대해서 장자의 고기 써는 정육업자 얘기를 가져와 보자. 그 당시의 정육업자는 백정이라고 불리며 멸시의 대상이었다. 그러나 장자에게 정육업자가 한 말은 그야말로 노자의 무위를 체득한 셈이었다. 정육업자는 자기가 가진 고기 써는 칼에 대해 하나하나 계산해서 썰지 않았다. 처음에는 서툴고 칼을 부러뜨리다가도, 그 흐름과 논리가 체화되니 그야말로 물 흐르듯 자연스럽게 어딜 잘라야 고기이고 어디가 뼈인지 발라낼 수 있었다.
솔직하게 말해 보자. 코드를 짤 때 계획을 세우고, 다이어그램을 그릴 때, 모든 변수 하나하나를 다 고려하며 그리지 않는다. 그저 여러 명의 기술자들이 모여 자연스럽게 마음에서 튀어나오는 아이디어들을 다수결로 정리해서 계획을 세우고, 상급자의 허락이 떨어지길 기다린다. 이것은 프로가 아닌 연구실로 가도 거의 비슷하다고 볼 수 있다. 물론 좋은 습관이 아니고 제어해야 하지만, 벨 연구소에는 “코드에 생각없이 손부터 가지 않게 하자”는 부류의 풍조가 유행했다. 물론 벨 연구소의 격언은 참된 격언이지만, 생각이 없이 손이 논리를 구성하려 한다는 것은 어쩌면 “코드로 무위에 도달할 수도 있다”는 증거일 수도 있다. 정말 아무 생각없이 충동적으로 손이 가는 “무위가 아닌 흐름”을 말하고자 하는 것은 아니지만, 숙련을 통해 깨달은 정수는 다원적 세계를 설명하기에 너무 편협하다. 이러한 것에 대한 경계가 바로 “군자는 도구가 아니다” 라는 공자의 말인 셈이다.
그러하므로 “숙련되 한 가지 정수”에 대한 방법인 무위만으로는 평정심, 혹은 아타락시아를 유지할 수도, 좋은 위계에 따라 모든 요소들이 예측 가능한 프로그램을 짜지도 못한다. 그러니 기술자는 완전한 무위도, 완전한 권위도 따라갈 수 없는 셈이다.
아타락시아에 대한 나의 이해
아타락시아는 오래된 개념이다. 마치 코드로 따지면 이것은 아름답지만 쓰기 애매한 K&R C같은 것이고, 특히 통제된 현재 사회에서 그대로 적용하기가 힘들다. 아타락시아 개념에 대해서 “현자는 사랑에 함부로 빠지거나 이성을 가까이 하지 않으며, 결혼도 하지 않는다”는 말이 있다. 이것에 대해 시대 배경을 떼어 놓고 비혼주의라고 단정하고 행동할 수 없는 노릇이다. 이것을 보다 심층으로 분해해서 보자면 “사랑이 감정을 뒤흔들어 평정심을 깨고, 결혼이 서로를 마구 혼란하게 한다면 할 필요가 있는가?”에 대한 개념이다. 그 시절의 엄격하고 책임이 과하던 결혼과 현대를 생각하면 이것에 대한 현대적 판단은 “그 결혼이 너의 안정을 파괴할 거라면 필요없다”에 가까운 것일지도 모른다.
코드를 짤 때에 무위에 가깝게 “생각나는 흐름대로 논리를 냅다 박는 것”은 이러한 판단으로 보면 아타락시아를 깨는 것이다. 당장 즐길 수 있는 코드는 장기적으로 관리가 쉽다는 보장이 없다. 위계도 통일성도 없이 멋져 보이는 것들을 여기저기 그려넣고 나중엔 이해하지 못하는 도식은 좋은 도식이 아니다. 단기적인 쾌락이 아닌 장기적인 쾌락을 위해서는 “한 걸음 멈춰서” 새지 않는 구조를 잡은 후 어느 정도 정리가 되면 출발해도 그만인 것이다.
AI를 이용하든 아니든 무작정 쏟아붓는 코드는 일회성으로 쓰고 말 것이 아니면 평정심을 유지 가능한 코드는 아니다. 벨 연구소의 분위기는 어쩌면 “아타락시아”를 유지하려는 풍조였을지도 모른다.
권위가 항상 나쁜가?
공자는 권위와 질서를 인정하고 들어가는 철학이다. 물론 고대의 논리대로 왕이 있으면 충성해야 하는 방식을 옹호하는 것은 아니지만, 현대에도 어느 정도 의미가 있다.
자신보다 경험이 많은 상급자가 제안한 아키텍처가 아주 나쁘다면, “그것은 아닌 거 같네요”라고 말하는 것도 상급자에 대한 존중이겠지만, 나름 합리성이 보이는 구조에 대해서는 구조에 대해 열심히 물어 보고 이해하는 것도 미덕이다. 만약 모두가 자신의 아키텍처를 주장한다면, 누군가는 모놀리식, 누군가는 마이크로아키텍처를 주장하고, 누군가는 OOP, 누군가는 함수형, 누군가는 절차형 프로그래밍을 냅다 코드로 작성까지 해 버려서 유지할 수 없는 아키텍처가 되는 것이다.
아타락시아가 깨지면 어떻게 되는가?
아타락시아가 깨져 버린 안타까운 천재, 라고 하면 미시마 유키오의 정체가 설명된다고 느껴진다. 그의 가장 유명한 작품인 금각사에서, 그나마 멀쩡했다던 그 시절에, 오히려 미시마 유키오의 광기는 가장 선명하게 역할이 나뉜 채 엉키기만을 기다리고 있다. 미조구치는 소극적이고 말 수가 적었던 그 때의 표면적 미시마, 쓰루카와는 자신이 스스로라고 느끼는 이상적 미시마의 튜여이라고 느껴졌다. 하지만 그는 아마 어떠한 사건으로부터(아마 금각의 전소일까? 아니면 무엇일지) 자신 안에 있던 가시와기를 마주하고, 그 때에 이미 자신 안에 남아 있던 쓰루카와는 죽어 버린 것이 아닐지, 그리고 그 전개에 대한 예고가 금각사가 아니었을지, 그러한 생각이 든다.
그의 아타락시아는 분명 전쟁의 광기, 근대의 혼란함으로 인해 부서진 부분이 있다. 물론 그 휘청거림때문에 금각사라는 멋진 소설이 나왔지만, 그가 느꼈던 가시와기적인 충동이 마침내 미조구치의 열등감과 만나 증폭되어서 이미 타 버린 금각 대신 자신을 태워 버리는 것은 에피쿠로스주의자적이지는 않다.
사람은 본능적으로 강렬한 감정에 이끌리고 그것을 숭고하게 여기고, 탐닉한다. 그것이 좋은 감정으로 느껴지든 나쁜 감정으로 느껴지든 수렁에 빠지는 것은 찰나에 끝나 버린다. 어쩌면 이것이 무위라고 포장되고, 건전한 숙련이라고 이름붙여진 것의 불편한 진실이 아닐까 생각한다. 그리고 이것은 기술이나 과학을 연구하는 사람에게서도 매우 흔하다.
(물론 지금은 지동설이 사실임이 관측되었으나)에피쿠로스는 지동설만이 진리라고 말하는 학자들과, 신들이 세상을 주관한다고 믿었던 종교학자들 모두를 비판했다. 신들이 세상을 주관한다고 생각하는 사람들에 대해선 신화에 얽매여서 자기 머리와 눈이 납득할 수 있는 결론을 고민하지 않는다고 비판했으며, 지동설을 연구하는 학자들에 대해서는 “누구나 직접 눈으로 보고 믿을 수 있는 증거가 부족한데, 다른 이론을 믿는 사람들을 다 틀렸다고 몰아세우는 태도”가 편협하고 열린 마음이 아니라고 말했다. 즉, 에피쿠로스는 지성 없이 신부터 찾는 것을 싫어했지만, 아무리 이론이 그럴듯해도 애초에 가능성을 막아 버리는 대화를 하지 않을 것을 당부한 것이다.
물론 지동설과 신앙 논쟁은 검증된 관측으로 끝낼 수 있는 일이었지만, 많은 경우 기술에 대한 이야기는 절대적인 결론이 없음에도 자신만이 옳다고 우겨서 나머지 한 쪽을 구식으로 만들어 버려야 끝난다. 이것은 자기가 강렬하게 느끼는 것에 이끌려 평정심을 잃어 싸움을 부추기는 형태이므로 좋지 않다.
그럼 우리는 뭘 쫓아가야 하는가?
기술을 배워가는 학습자 입장에서 기술에 흥미를 잃으라고 하는 것은 말이 안 된다. 하지만 자신이 틀렸다고 생각하는 것이라도 장점을 인정하고 넓게 보고 이해할 수 있는 마음을 가지며, 내가 하는 것이 제일이라고 생각하지 말라는 뜻이다. 예를 들면 나는 러스트를 싫어하는 사람이었다. 심한 경우에는 러스트는 C++도 있는 판에 효율이 없다고 말하던 때도 분명히, 길게 있었다. 그러나 “러스트가 정말로 뛰어난 부분”이 있으며 “C/C++을 버릴 만한 사유”가 있는 곳이 존재하거나, 더 존재할 수 있다는 입장 내지는 사실에 대해 눈 가리고 아웅하는 것은 열린 마음으로 평정심을 가진 태도가 아니다. 이러한 것은 다른 방향을 학습하는 사람들에게도 비슷할 것이다. “자바 스프링부트는 성능이 좋고 똑똑한데 왜 Go언어로 서버를 짜느니, 고성능 C++ 서버를 짜려 하느니”같은 생각이 들 수도 있고, “C언어에서 힙 영역 할당? 그냥 죄다 커다란 정적 배열로 퉁 치면 되잖아”같은 생각이 들 수도 있다. 하지만 정교하게 뜯어 보고도 “이건 어디에도 필요없는 게 객관적으로 확실한” 상황이 아니면 “아, 저런 것도 있네? 시간이 나면 배워 봐야지”로 종지를 찍는 것이 더 건강한 태도이다.
우리가 가져야 할 태도는, 기술에 흥미를 가지되 기술이 자기 자신을 잡아 먹지 않게 하고, 권위와 혁신 모두를 인정하며 열린 마음으로 무엇이 일어나는지 바라보는 것이다. 공자같은 사람들이 말한 질서를 마음에 담아두면서도, 아타락시아를 유지하고, 노자의 “물처럼 살라”는 말처럼 둥글둥글하게 흐름을 따라가야 할 것이다.
다만, 급류에 휩쓸려 아무것도 하지 못하고 미시마 유키오같이 파멸하는 것은 언제나 기민하게 경계하고 마음 속으로 되물어야 한다.